import axios from 'axios'
import { showToast, showFailToast } from 'vant'
import { setLocal } from '@/common/js/utils'
import router from '../router'
console.log('import.meta.env', import.meta.env)

axios.defaults.baseURL = import.meta.env.MODE == 'development' ? 'http://localhost:28001/api/v1' : 'http://localhost:28001/api/v1'
axios.defaults.withCredentials = true
axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
axios.defaults.headers['token'] = localStorage.getItem('token') || ''
axios.defaults.headers.post['Content-Type'] = 'application/json'

/**
 * 如果返回的数据不是一个对象类型，会显示一个错误提示。
 * 如果返回的 resultCode 不等于200，会根据不同的情况显示相应的错误提示
 * ，并可能进行页面跳转或设置 token 的值。 
 */
axios.interceptors.response.use(res => {
  console.log(res)
  if (typeof res.data !== 'object') {
   showFailToast('服务端异常！')
    return Promise.reject(res)
  }
  if (res.data.resultCode != 200) {
    if (res.data.message) showFailToast(res.data.message)
    if (res.data.resultCode == 416) {
      router.push({ path: '/login' })
    }
    if (res.data.data && window.location.hash == '#/login') {
      setLocal('token', res.data.data)
      axios.defaults.headers['token'] = res.data.data
    }
    return Promise.reject(res.data)
  }

  return res.data
})

export default axios
 